home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.basic;
-
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Container;
- import java.awt.Dimension;
- import java.awt.Font;
- import java.awt.FontMetrics;
- import java.awt.Graphics;
- import java.awt.Insets;
- import java.awt.LayoutManager;
- import java.awt.Rectangle;
- import java.awt.Toolkit;
- import java.awt.event.ContainerListener;
- import java.awt.event.FocusListener;
- import java.awt.event.MouseListener;
- import java.beans.PropertyChangeListener;
- import java.util.Vector;
- import javax.swing.Icon;
- import javax.swing.JComponent;
- import javax.swing.JTabbedPane;
- import javax.swing.KeyStroke;
- import javax.swing.LookAndFeel;
- import javax.swing.SwingConstants;
- import javax.swing.SwingUtilities;
- import javax.swing.UIManager;
- import javax.swing.event.ChangeListener;
- import javax.swing.plaf.ComponentUI;
- import javax.swing.plaf.TabbedPaneUI;
- import javax.swing.text.View;
-
- public class BasicTabbedPaneUI extends TabbedPaneUI implements SwingConstants {
- protected JTabbedPane tabPane;
- protected Color highlight;
- protected Color lightHighlight;
- protected Color shadow;
- protected Color darkShadow;
- protected Color focus;
- protected int textIconGap;
- protected int tabRunOverlay;
- protected Insets tabInsets;
- protected Insets selectedTabPadInsets;
- protected Insets tabAreaInsets;
- protected Insets contentBorderInsets;
- protected KeyStroke upKey;
- protected KeyStroke downKey;
- protected KeyStroke leftKey;
- protected KeyStroke rightKey;
- private KeyStroke kpUpKey;
- private KeyStroke kpDownKey;
- private KeyStroke kpLeftKey;
- private KeyStroke kpRightKey;
- protected int[] tabRuns = new int[10];
- protected int runCount;
- protected int selectedRun;
- protected Rectangle[] rects = new Rectangle[0];
- protected int maxTabHeight;
- protected int maxTabWidth;
- protected ChangeListener tabChangeListener;
- protected PropertyChangeListener propertyChangeListener;
- protected MouseListener mouseListener;
- protected FocusListener focusListener;
- private ContainerListener containerListener;
- private Insets currentPadInsets = new Insets(0, 0, 0, 0);
- private Insets currentTabAreaInsets = new Insets(0, 0, 0, 0);
- private Component visibleComponent;
- private Vector htmlViews;
-
- // $FF: synthetic method
- static Vector access$0(BasicTabbedPaneUI var0) {
- return var0.htmlViews;
- }
-
- // $FF: synthetic method
- static Vector access$1(BasicTabbedPaneUI var0) {
- return var0.createHTMLVector();
- }
-
- // $FF: synthetic method
- static void access$2(BasicTabbedPaneUI var0, Vector var1) {
- var0.htmlViews = var1;
- }
-
- protected void assureRectsCreated(int var1) {
- int var2 = this.rects.length;
- if (var1 != var2) {
- Rectangle[] var3 = new Rectangle[var1];
- System.arraycopy(this.rects, 0, var3, 0, Math.min(var2, var1));
- this.rects = var3;
-
- for(int var4 = var2; var4 < var1; ++var4) {
- this.rects[var4] = new Rectangle();
- }
- }
-
- }
-
- protected int calculateMaxTabHeight(int var1) {
- FontMetrics var2 = this.getFontMetrics();
- int var3 = this.tabPane.getTabCount();
- int var4 = 0;
- int var5 = var2.getHeight();
-
- for(int var6 = 0; var6 < var3; ++var6) {
- var4 = Math.max(this.calculateTabHeight(var1, var6, var5), var4);
- }
-
- return var4;
- }
-
- protected int calculateMaxTabWidth(int var1) {
- FontMetrics var2 = this.getFontMetrics();
- int var3 = this.tabPane.getTabCount();
- int var4 = 0;
-
- for(int var5 = 0; var5 < var3; ++var5) {
- var4 = Math.max(this.calculateTabWidth(var1, var5, var2), var4);
- }
-
- return var4;
- }
-
- protected int calculateTabAreaHeight(int var1, int var2, int var3) {
- Insets var4 = this.getTabAreaInsets(var1);
- int var5 = this.getTabRunOverlay(var1);
- return var2 > 0 ? var2 * (var3 - var5) + var5 + var4.top + var4.bottom : 0;
- }
-
- protected int calculateTabAreaWidth(int var1, int var2, int var3) {
- Insets var4 = this.getTabAreaInsets(var1);
- int var5 = this.getTabRunOverlay(var1);
- return var2 > 0 ? var2 * (var3 - var5) + var5 + var4.left + var4.right : 0;
- }
-
- protected int calculateTabHeight(int var1, int var2, int var3) {
- int var4 = 0;
- View var5;
- if (this.htmlViews != null && (var5 = (View)this.htmlViews.elementAt(var2)) != null) {
- var4 += (int)var5.getPreferredSpan(1);
- } else {
- var4 += var3;
- }
-
- Icon var6 = this.getIconForTab(var2);
- Insets var7 = this.getTabInsets(var1, var2);
- if (var6 != null) {
- var4 = Math.max(var4, var6.getIconHeight());
- }
-
- var4 += var7.top + var7.bottom + 2;
- return var4;
- }
-
- protected int calculateTabWidth(int var1, int var2, FontMetrics var3) {
- Icon var4 = this.getIconForTab(var2);
- Insets var5 = this.getTabInsets(var1, var2);
- int var6 = var5.left + var5.right + 3;
- if (var4 != null) {
- var6 += var4.getIconWidth() + this.textIconGap;
- }
-
- View var7;
- if (this.htmlViews != null && (var7 = (View)this.htmlViews.elementAt(var2)) != null) {
- var6 += (int)var7.getPreferredSpan(0);
- } else {
- String var8 = this.tabPane.getTitleAt(var2);
- var6 += SwingUtilities.computeStringWidth(var3, var8);
- }
-
- return var6;
- }
-
- protected ChangeListener createChangeListener() {
- return new TabSelectionHandler(this);
- }
-
- protected FocusListener createFocusListener() {
- return new FocusHandler(this);
- }
-
- private Vector createHTMLVector() {
- Vector var1 = new Vector();
- int var2 = this.tabPane.getTabCount();
- if (var2 > 0) {
- for(int var3 = 0; var3 < var2; ++var3) {
- String var4 = this.tabPane.getTitleAt(var3);
- if (BasicHTML.isHTMLString(var4)) {
- var1.addElement(BasicHTML.createHTMLView(this.tabPane, var4));
- } else {
- var1.addElement((Object)null);
- }
- }
- }
-
- return var1;
- }
-
- protected LayoutManager createLayoutManager() {
- return new TabbedPaneLayout(this);
- }
-
- protected MouseListener createMouseListener() {
- return new MouseHandler(this);
- }
-
- protected PropertyChangeListener createPropertyChangeListener() {
- return new PropertyChangeHandler(this);
- }
-
- public static ComponentUI createUI(JComponent var0) {
- return new BasicTabbedPaneUI();
- }
-
- private void ensureCurrentLayout() {
- if (this.tabPane.getTabCount() != this.rects.length) {
- TabbedPaneLayout var1 = (TabbedPaneLayout)this.tabPane.getLayout();
- var1.calculateLayoutInfo();
- }
-
- }
-
- protected void expandTabRunsArray() {
- int var1 = this.tabRuns.length;
- int[] var2 = new int[var1 + 10];
- System.arraycopy(this.tabRuns, 0, var2, 0, this.runCount);
- this.tabRuns = var2;
- }
-
- protected Insets getContentBorderInsets(int var1) {
- return this.contentBorderInsets;
- }
-
- protected FontMetrics getFontMetrics() {
- Font var1 = this.tabPane.getFont();
- return Toolkit.getDefaultToolkit().getFontMetrics(var1);
- }
-
- protected Icon getIconForTab(int var1) {
- return (!this.tabPane.isEnabled() || !this.tabPane.isEnabledAt(var1)) && this.tabPane.getDisabledIconAt(var1) != null ? this.tabPane.getDisabledIconAt(var1) : this.tabPane.getIconAt(var1);
- }
-
- public Dimension getMaximumSize(JComponent var1) {
- return null;
- }
-
- public Dimension getMinimumSize(JComponent var1) {
- return null;
- }
-
- protected int getNextTabIndex(int var1) {
- return (var1 + 1) % this.tabPane.getTabCount();
- }
-
- public Dimension getPreferredSize(JComponent var1) {
- return null;
- }
-
- protected int getPreviousTabIndex(int var1) {
- int var2 = var1 - 1 >= 0 ? var1 - 1 : this.tabPane.getTabCount() - 1;
- return var2 >= 0 ? var2 : 0;
- }
-
- protected int getRunForTab(int var1, int var2) {
- for(int var3 = 0; var3 < this.runCount; ++var3) {
- int var4 = this.tabRuns[var3];
- int var5 = this.lastTabInRun(var1, var3);
- if (var2 >= var4 && var2 <= var5) {
- return var3;
- }
- }
-
- return 0;
- }
-
- protected Insets getSelectedTabPadInsets(int var1) {
- rotateInsets(this.selectedTabPadInsets, this.currentPadInsets, var1);
- return this.currentPadInsets;
- }
-
- protected Insets getTabAreaInsets(int var1) {
- rotateInsets(this.tabAreaInsets, this.currentTabAreaInsets, var1);
- return this.currentTabAreaInsets;
- }
-
- public Rectangle getTabBounds(JTabbedPane var1, int var2) {
- this.ensureCurrentLayout();
- return new Rectangle(this.rects[var2]);
- }
-
- protected Insets getTabInsets(int var1, int var2) {
- return this.tabInsets;
- }
-
- protected int getTabLabelShiftX(int var1, int var2, boolean var3) {
- Rectangle var4 = this.rects[var2];
- int var5 = 0;
- switch (var1) {
- case 1:
- case 3:
- default:
- var5 = var4.width % 2;
- break;
- case 2:
- var5 = var3 ? -1 : 1;
- break;
- case 4:
- var5 = var3 ? 1 : -1;
- }
-
- return var5;
- }
-
- protected int getTabLabelShiftY(int var1, int var2, boolean var3) {
- Rectangle var4 = this.rects[var2];
- int var5 = 0;
- switch (var1) {
- case 1:
- default:
- var5 = var3 ? -1 : 1;
- break;
- case 2:
- case 4:
- var5 = var4.height % 2;
- break;
- case 3:
- var5 = var3 ? 1 : -1;
- }
-
- return var5;
- }
-
- public int getTabRunCount(JTabbedPane var1) {
- return this.runCount;
- }
-
- protected int getTabRunIndent(int var1, int var2) {
- return 0;
- }
-
- protected int getTabRunOffset(int var1, int var2, int var3, boolean var4) {
- int var5 = this.getRunForTab(var2, var3);
- int var6;
- switch (var1) {
- case 1:
- default:
- if (var5 == 0) {
- var6 = var4 ? -(this.calculateTabAreaHeight(var1, this.runCount, this.maxTabHeight) - this.maxTabHeight) : -this.maxTabHeight;
- } else if (var5 == this.runCount - 1) {
- var6 = var4 ? this.maxTabHeight : this.calculateTabAreaHeight(var1, this.runCount, this.maxTabHeight) - this.maxTabHeight;
- } else {
- var6 = var4 ? this.maxTabHeight : -this.maxTabHeight;
- }
- break;
- case 2:
- if (var5 == 0) {
- var6 = var4 ? -(this.calculateTabAreaWidth(var1, this.runCount, this.maxTabWidth) - this.maxTabWidth) : -this.maxTabWidth;
- } else if (var5 == this.runCount - 1) {
- var6 = var4 ? this.maxTabWidth : this.calculateTabAreaWidth(var1, this.runCount, this.maxTabWidth) - this.maxTabWidth;
- } else {
- var6 = var4 ? this.maxTabWidth : -this.maxTabWidth;
- }
- break;
- case 3:
- if (var5 == 0) {
- var6 = var4 ? this.maxTabHeight : this.calculateTabAreaHeight(var1, this.runCount, this.maxTabHeight) - this.maxTabHeight;
- } else if (var5 == this.runCount - 1) {
- var6 = var4 ? -(this.calculateTabAreaHeight(var1, this.runCount, this.maxTabHeight) - this.maxTabHeight) : -this.maxTabHeight;
- } else {
- var6 = var4 ? this.maxTabHeight : -this.maxTabHeight;
- }
- break;
- case 4:
- if (var5 == 0) {
- var6 = var4 ? this.maxTabWidth : this.calculateTabAreaWidth(var1, this.runCount, this.maxTabWidth) - this.maxTabWidth;
- } else if (var5 == this.runCount - 1) {
- var6 = var4 ? -(this.calculateTabAreaWidth(var1, this.runCount, this.maxTabWidth) - this.maxTabWidth) : -this.maxTabWidth;
- } else {
- var6 = var4 ? this.maxTabWidth : -this.maxTabWidth;
- }
- }
-
- return var6;
- }
-
- protected int getTabRunOverlay(int var1) {
- return this.tabRunOverlay;
- }
-
- protected Component getVisibleComponent() {
- return this.visibleComponent;
- }
-
- protected void installDefaults() {
- LookAndFeel.installColorsAndFont(this.tabPane, "TabbedPane.background", "TabbedPane.foreground", "TabbedPane.font");
- this.highlight = UIManager.getColor("TabbedPane.highlight");
- this.lightHighlight = UIManager.getColor("TabbedPane.lightHighlight");
- this.shadow = UIManager.getColor("TabbedPane.shadow");
- this.darkShadow = UIManager.getColor("TabbedPane.darkShadow");
- this.focus = UIManager.getColor("TabbedPane.focus");
- this.textIconGap = UIManager.getInt("TabbedPane.textIconGap");
- this.tabInsets = UIManager.getInsets("TabbedPane.tabInsets");
- this.selectedTabPadInsets = UIManager.getInsets("TabbedPane.selectedTabPadInsets");
- this.tabAreaInsets = UIManager.getInsets("TabbedPane.tabAreaInsets");
- this.contentBorderInsets = UIManager.getInsets("TabbedPane.contentBorderInsets");
- this.tabRunOverlay = UIManager.getInt("TabbedPane.tabRunOverlay");
- }
-
- protected void installKeyboardActions() {
- RightAction var1 = new RightAction(this);
- LeftAction var2 = new LeftAction(this);
- UpAction var3 = new UpAction(this);
- DownAction var4 = new DownAction(this);
- PageUpAction var5 = new PageUpAction(this);
- PageDownAction var6 = new PageDownAction(this);
- RequestFocusAction var7 = new RequestFocusAction(this);
- RequestFocusForVisibleAction var8 = new RequestFocusForVisibleAction(this);
- this.rightKey = KeyStroke.getKeyStroke(39, 0);
- this.kpRightKey = KeyStroke.getKeyStroke("KP_RIGHT");
- this.tabPane.registerKeyboardAction(var1, this.rightKey, 0);
- this.tabPane.registerKeyboardAction(var1, this.kpRightKey, 0);
- this.leftKey = KeyStroke.getKeyStroke(37, 0);
- this.kpLeftKey = KeyStroke.getKeyStroke("KP_LEFT");
- this.tabPane.registerKeyboardAction(var2, this.leftKey, 0);
- this.tabPane.registerKeyboardAction(var2, this.kpLeftKey, 0);
- this.upKey = KeyStroke.getKeyStroke(38, 0);
- this.kpUpKey = KeyStroke.getKeyStroke("KP_UP");
- this.tabPane.registerKeyboardAction(var3, this.upKey, 0);
- this.tabPane.registerKeyboardAction(var3, this.kpUpKey, 0);
- this.downKey = KeyStroke.getKeyStroke(40, 0);
- this.kpDownKey = KeyStroke.getKeyStroke("KP_DOWN");
- this.tabPane.registerKeyboardAction(var4, this.downKey, 0);
- this.tabPane.registerKeyboardAction(var4, this.kpDownKey, 0);
- this.tabPane.registerKeyboardAction(var6, KeyStroke.getKeyStroke(34, 2), 1);
- this.tabPane.registerKeyboardAction(var5, KeyStroke.getKeyStroke(33, 2), 1);
- this.tabPane.registerKeyboardAction(var7, KeyStroke.getKeyStroke(38, 2), 1);
- this.tabPane.registerKeyboardAction(var7, KeyStroke.getKeyStroke("control KP_UP"), 1);
- this.tabPane.registerKeyboardAction(var8, KeyStroke.getKeyStroke(40, 2), 0);
- this.tabPane.registerKeyboardAction(var8, KeyStroke.getKeyStroke("control KP_DOWN"), 0);
- }
-
- protected void installListeners() {
- if ((this.propertyChangeListener = this.createPropertyChangeListener()) != null) {
- this.tabPane.addPropertyChangeListener(this.propertyChangeListener);
- }
-
- if ((this.tabChangeListener = this.createChangeListener()) != null) {
- this.tabPane.addChangeListener(this.tabChangeListener);
- }
-
- if ((this.mouseListener = this.createMouseListener()) != null) {
- this.tabPane.addMouseListener(this.mouseListener);
- }
-
- if ((this.focusListener = this.createFocusListener()) != null) {
- this.tabPane.addFocusListener(this.focusListener);
- }
-
- if ((this.containerListener = new ContainerHandler(this)) != null) {
- this.tabPane.addContainerListener(this.containerListener);
- if (this.tabPane.getTabCount() > 0) {
- this.htmlViews = this.createHTMLVector();
- }
- }
-
- }
-
- public void installUI(JComponent var1) {
- this.tabPane = (JTabbedPane)var1;
- ((Container)var1).setLayout(this.createLayoutManager());
- this.installDefaults();
- this.installListeners();
- this.installKeyboardActions();
- this.runCount = 0;
- this.selectedRun = -1;
- }
-
- protected int lastTabInRun(int var1, int var2) {
- if (this.runCount == 1) {
- return var1 - 1;
- } else {
- int var3 = var2 == this.runCount - 1 ? 0 : var2 + 1;
- return this.tabRuns[var3] == 0 ? var1 - 1 : this.tabRuns[var3] - 1;
- }
- }
-
- protected void layoutLabel(int var1, FontMetrics var2, int var3, String var4, Icon var5, Rectangle var6, Rectangle var7, Rectangle var8, boolean var9) {
- var8.x = var8.y = var7.x = var7.y = 0;
- SwingUtilities.layoutCompoundLabel(this.tabPane, var2, var4, var5, 0, 0, 0, 4, var6, var7, var8, this.textIconGap);
- int var10 = this.getTabLabelShiftX(var1, var3, var9);
- int var11 = this.getTabLabelShiftY(var1, var3, var9);
- var7.x += var10;
- var7.y += var11;
- var8.x += var10;
- var8.y += var11;
- }
-
- protected void navigateSelectedTab(int var1) {
- int var2 = this.tabPane.getTabPlacement();
- int var3 = this.tabPane.getSelectedIndex();
- int var4 = this.tabPane.getTabCount();
- switch (var2) {
- case 1:
- case 3:
- default:
- switch (var1) {
- case 1:
- int var8 = this.getTabRunOffset(var2, var4, var3, false);
- this.selectAdjacentRunTab(var2, var3, var8);
- return;
- case 2:
- case 4:
- case 6:
- default:
- return;
- case 3:
- this.selectNextTab(var3);
- return;
- case 5:
- int var7 = this.getTabRunOffset(var2, var4, var3, true);
- this.selectAdjacentRunTab(var2, var3, var7);
- return;
- case 7:
- this.selectPreviousTab(var3);
- return;
- }
- case 2:
- case 4:
- switch (var1) {
- case 1:
- this.selectPreviousTab(var3);
- case 2:
- case 4:
- case 6:
- default:
- break;
- case 3:
- int var6 = this.getTabRunOffset(var2, var4, var3, true);
- this.selectAdjacentRunTab(var2, var3, var6);
- break;
- case 5:
- this.selectNextTab(var3);
- break;
- case 7:
- int var5 = this.getTabRunOffset(var2, var4, var3, false);
- this.selectAdjacentRunTab(var2, var3, var5);
- }
- }
-
- }
-
- public void paint(Graphics var1, JComponent var2) {
- int var3 = this.tabPane.getSelectedIndex();
- int var4 = this.tabPane.getTabPlacement();
- int var5 = this.tabPane.getTabCount();
- this.ensureCurrentLayout();
- Rectangle var6 = new Rectangle();
- Rectangle var7 = new Rectangle();
- Rectangle var8 = var1.getClipBounds();
- Insets var9 = this.tabPane.getInsets();
-
- for(int var10 = this.runCount - 1; var10 >= 0; --var10) {
- int var11 = this.tabRuns[var10];
- int var12 = this.tabRuns[var10 == this.runCount - 1 ? 0 : var10 + 1];
- int var13 = var12 != 0 ? var12 - 1 : var5 - 1;
-
- for(int var14 = var11; var14 <= var13; ++var14) {
- if (this.rects[var14].intersects(var8)) {
- this.paintTab(var1, var4, this.rects, var14, var6, var7);
- }
- }
- }
-
- if (var3 >= 0 && this.getRunForTab(var5, var3) == 0 && this.rects[var3].intersects(var8)) {
- this.paintTab(var1, var4, this.rects, var3, var6, var7);
- }
-
- this.paintContentBorder(var1, var4, var3);
- }
-
- protected void paintContentBorder(Graphics var1, int var2, int var3) {
- int var4 = this.tabPane.getWidth();
- int var5 = this.tabPane.getHeight();
- Insets var6 = this.tabPane.getInsets();
- int var7 = var6.left;
- int var8 = var6.top;
- int var9 = var4 - var6.right - var6.left;
- int var10 = var5 - var6.top - var6.bottom;
- switch (var2) {
- case 1:
- default:
- var8 += this.calculateTabAreaHeight(var2, this.runCount, this.maxTabHeight);
- var10 -= var8 - var6.top;
- break;
- case 2:
- var7 += this.calculateTabAreaWidth(var2, this.runCount, this.maxTabWidth);
- var9 -= var7 - var6.left;
- break;
- case 3:
- var10 -= this.calculateTabAreaHeight(var2, this.runCount, this.maxTabHeight);
- break;
- case 4:
- var9 -= this.calculateTabAreaWidth(var2, this.runCount, this.maxTabWidth);
- }
-
- this.paintContentBorderTopEdge(var1, var2, var3, var7, var8, var9, var10);
- this.paintContentBorderLeftEdge(var1, var2, var3, var7, var8, var9, var10);
- this.paintContentBorderBottomEdge(var1, var2, var3, var7, var8, var9, var10);
- this.paintContentBorderRightEdge(var1, var2, var3, var7, var8, var9, var10);
- }
-
- protected void paintContentBorderBottomEdge(Graphics var1, int var2, int var3, int var4, int var5, int var6, int var7) {
- var1.setColor(this.shadow);
- if (var2 == 3 && var3 >= 0 && this.rects[var3].y - 1 <= var7) {
- Rectangle var8 = this.rects[var3];
- var1.drawLine(var4 + 1, var5 + var7 - 2, var8.x - 1, var5 + var7 - 2);
- var1.setColor(this.darkShadow);
- var1.drawLine(var4, var5 + var7 - 1, var8.x - 1, var5 + var7 - 1);
- if (var8.x + var8.width < var4 + var6 - 2) {
- var1.setColor(this.shadow);
- var1.drawLine(var8.x + var8.width, var5 + var7 - 2, var4 + var6 - 2, var5 + var7 - 2);
- var1.setColor(this.darkShadow);
- var1.drawLine(var8.x + var8.width, var5 + var7 - 1, var4 + var6 - 1, var5 + var7 - 1);
- }
- } else {
- var1.drawLine(var4 + 1, var5 + var7 - 2, var4 + var6 - 2, var5 + var7 - 2);
- var1.setColor(this.darkShadow);
- var1.drawLine(var4, var5 + var7 - 1, var4 + var6 - 1, var5 + var7 - 1);
- }
-
- }
-
- protected void paintContentBorderLeftEdge(Graphics var1, int var2, int var3, int var4, int var5, int var6, int var7) {
- var1.setColor(this.lightHighlight);
- if (var2 == 2 && var3 >= 0 && this.rects[var3].x + this.rects[var3].width + 1 >= var4) {
- Rectangle var8 = this.rects[var3];
- var1.drawLine(var4, var5, var4, var8.y - 1);
- if (var8.y + var8.height < var5 + var7 - 2) {
- var1.drawLine(var4, var8.y + var8.height, var4, var5 + var7 - 2);
- }
- } else {
- var1.drawLine(var4, var5, var4, var5 + var7 - 2);
- }
-
- }
-
- protected void paintContentBorderRightEdge(Graphics var1, int var2, int var3, int var4, int var5, int var6, int var7) {
- var1.setColor(this.shadow);
- if (var2 == 4 && var3 >= 0 && this.rects[var3].x - 1 <= var6) {
- Rectangle var8 = this.rects[var3];
- var1.drawLine(var4 + var6 - 2, var5 + 1, var4 + var6 - 2, var8.y - 1);
- var1.setColor(this.darkShadow);
- var1.drawLine(var4 + var6 - 1, var5, var4 + var6 - 1, var8.y - 1);
- if (var8.y + var8.height < var5 + var7 - 2) {
- var1.setColor(this.shadow);
- var1.drawLine(var4 + var6 - 2, var8.y + var8.height, var4 + var6 - 2, var5 + var7 - 2);
- var1.setColor(this.darkShadow);
- var1.drawLine(var4 + var6 - 1, var8.y + var8.height, var4 + var6 - 1, var5 + var7 - 2);
- }
- } else {
- var1.drawLine(var4 + var6 - 2, var5 + 1, var4 + var6 - 2, var5 + var7 - 3);
- var1.setColor(this.darkShadow);
- var1.drawLine(var4 + var6 - 1, var5, var4 + var6 - 1, var5 + var7 - 1);
- }
-
- }
-
- protected void paintContentBorderTopEdge(Graphics var1, int var2, int var3, int var4, int var5, int var6, int var7) {
- var1.setColor(this.lightHighlight);
- if (var2 == 1 && var3 >= 0 && this.rects[var3].y + this.rects[var3].height + 1 >= var5) {
- Rectangle var8 = this.rects[var3];
- var1.drawLine(var4, var5, var8.x - 1, var5);
- if (var8.x + var8.width < var4 + var6 - 2) {
- var1.drawLine(var8.x + var8.width, var5, var4 + var6 - 2, var5);
- } else {
- var1.setColor(this.shadow);
- var1.drawLine(var4 + var6 - 2, var5, var4 + var6 - 2, var5);
- }
- } else {
- var1.drawLine(var4, var5, var4 + var6 - 2, var5);
- }
-
- }
-
- protected void paintFocusIndicator(Graphics var1, int var2, Rectangle[] var3, int var4, Rectangle var5, Rectangle var6, boolean var7) {
- Rectangle var8 = var3[var4];
- if (this.tabPane.hasFocus() && var7) {
- var1.setColor(this.focus);
- int var9;
- int var10;
- int var11;
- int var12;
- switch (var2) {
- case 1:
- default:
- var9 = var8.x + 3;
- var10 = var8.y + 3;
- var11 = var8.width - 6;
- var12 = var8.height - 5;
- break;
- case 2:
- var9 = var8.x + 3;
- var10 = var8.y + 3;
- var11 = var8.width - 5;
- var12 = var8.height - 6;
- break;
- case 3:
- var9 = var8.x + 3;
- var10 = var8.y + 2;
- var11 = var8.width - 6;
- var12 = var8.height - 5;
- break;
- case 4:
- var9 = var8.x + 2;
- var10 = var8.y + 3;
- var11 = var8.width - 5;
- var12 = var8.height - 6;
- }
-
- BasicGraphicsUtils.drawDashedRect(var1, var9, var10, var11, var12);
- }
-
- }
-
- protected void paintIcon(Graphics var1, int var2, int var3, Icon var4, Rectangle var5, boolean var6) {
- if (var4 != null) {
- var4.paintIcon(this.tabPane, var1, var5.x, var5.y);
- }
-
- }
-
- protected void paintTab(Graphics var1, int var2, Rectangle[] var3, int var4, Rectangle var5, Rectangle var6) {
- Rectangle var7 = var3[var4];
- int var8 = this.tabPane.getSelectedIndex();
- boolean var9 = var8 == var4;
- this.paintTabBackground(var1, var2, var4, var7.x, var7.y, var7.width, var7.height, var9);
- this.paintTabBorder(var1, var2, var4, var7.x, var7.y, var7.width, var7.height, var9);
- String var10 = this.tabPane.getTitleAt(var4);
- Font var11 = this.tabPane.getFont();
- FontMetrics var12 = var1.getFontMetrics(var11);
- Icon var13 = this.getIconForTab(var4);
- this.layoutLabel(var2, var12, var4, var10, var13, var7, var5, var6, var9);
- this.paintText(var1, var2, var11, var12, var4, var10, var6, var9);
- this.paintIcon(var1, var2, var4, var13, var5, var9);
- this.paintFocusIndicator(var1, var2, var3, var4, var5, var6, var9);
- }
-
- protected void paintTabBackground(Graphics var1, int var2, int var3, int var4, int var5, int var6, int var7, boolean var8) {
- var1.setColor(this.tabPane.getBackgroundAt(var3));
- switch (var2) {
- case 1:
- default:
- var1.fillRect(var4 + 1, var5 + 1, var6 - 3, var7 - 1);
- break;
- case 2:
- var1.fillRect(var4 + 1, var5 + 1, var6 - 2, var7 - 3);
- break;
- case 3:
- var1.fillRect(var4 + 1, var5, var6 - 3, var7 - 1);
- break;
- case 4:
- var1.fillRect(var4, var5 + 1, var6 - 2, var7 - 3);
- }
-
- }
-
- protected void paintTabBorder(Graphics var1, int var2, int var3, int var4, int var5, int var6, int var7, boolean var8) {
- var1.setColor(this.lightHighlight);
- switch (var2) {
- case 1:
- default:
- var1.drawLine(var4, var5 + 2, var4, var5 + var7 - 1);
- var1.drawLine(var4 + 1, var5 + 1, var4 + 1, var5 + 1);
- var1.drawLine(var4 + 2, var5, var4 + var6 - 3, var5);
- var1.setColor(this.shadow);
- var1.drawLine(var4 + var6 - 2, var5 + 2, var4 + var6 - 2, var5 + var7 - 1);
- var1.setColor(this.darkShadow);
- var1.drawLine(var4 + var6 - 1, var5 + 2, var4 + var6 - 1, var5 + var7 - 1);
- var1.drawLine(var4 + var6 - 2, var5 + 1, var4 + var6 - 2, var5 + 1);
- break;
- case 2:
- var1.drawLine(var4 + 1, var5 + var7 - 2, var4 + 1, var5 + var7 - 2);
- var1.drawLine(var4, var5 + 2, var4, var5 + var7 - 3);
- var1.drawLine(var4 + 1, var5 + 1, var4 + 1, var5 + 1);
- var1.drawLine(var4 + 2, var5, var4 + var6 - 1, var5);
- var1.setColor(this.shadow);
- var1.drawLine(var4 + 2, var5 + var7 - 2, var4 + var6 - 1, var5 + var7 - 2);
- var1.setColor(this.darkShadow);
- var1.drawLine(var4 + 2, var5 + var7 - 1, var4 + var6 - 1, var5 + var7 - 1);
- break;
- case 3:
- var1.drawLine(var4, var5, var4, var5 + var7 - 3);
- var1.drawLine(var4 + 1, var5 + var7 - 2, var4 + 1, var5 + var7 - 2);
- var1.setColor(this.shadow);
- var1.drawLine(var4 + 2, var5 + var7 - 2, var4 + var6 - 3, var5 + var7 - 2);
- var1.drawLine(var4 + var6 - 2, var5, var4 + var6 - 2, var5 + var7 - 3);
- var1.setColor(this.darkShadow);
- var1.drawLine(var4 + 2, var5 + var7 - 1, var4 + var6 - 3, var5 + var7 - 1);
- var1.drawLine(var4 + var6 - 2, var5 + var7 - 2, var4 + var6 - 2, var5 + var7 - 2);
- var1.drawLine(var4 + var6 - 1, var5, var4 + var6 - 1, var5 + var7 - 3);
- break;
- case 4:
- var1.drawLine(var4, var5, var4 + var6 - 3, var5);
- var1.setColor(this.shadow);
- var1.drawLine(var4, var5 + var7 - 2, var4 + var6 - 3, var5 + var7 - 2);
- var1.drawLine(var4 + var6 - 2, var5 + 2, var4 + var6 - 2, var5 + var7 - 3);
- var1.setColor(this.darkShadow);
- var1.drawLine(var4 + var6 - 2, var5 + 1, var4 + var6 - 2, var5 + 1);
- var1.drawLine(var4 + var6 - 2, var5 + var7 - 2, var4 + var6 - 2, var5 + var7 - 2);
- var1.drawLine(var4 + var6 - 1, var5 + 2, var4 + var6 - 1, var5 + var7 - 3);
- var1.drawLine(var4, var5 + var7 - 1, var4 + var6 - 3, var5 + var7 - 1);
- }
-
- }
-
- protected void paintText(Graphics var1, int var2, Font var3, FontMetrics var4, int var5, String var6, Rectangle var7, boolean var8) {
- var1.setFont(var3);
- View var9;
- if (this.htmlViews != null && (var9 = (View)this.htmlViews.elementAt(var5)) != null) {
- var9.paint(var1, var7);
- } else if (this.tabPane.isEnabled() && this.tabPane.isEnabledAt(var5)) {
- var1.setColor(this.tabPane.getForegroundAt(var5));
- var1.drawString(var6, var7.x, var7.y + var4.getAscent());
- } else {
- var1.setColor(this.tabPane.getBackgroundAt(var5).brighter());
- var1.drawString(var6, var7.x, var7.y + var4.getAscent());
- var1.setColor(this.tabPane.getBackgroundAt(var5).darker());
- var1.drawString(var6, var7.x - 1, var7.y + var4.getAscent() - 1);
- }
-
- }
-
- boolean requestFocusForVisibleComponent() {
- Component var1 = this.getVisibleComponent();
- if (var1.isFocusTraversable()) {
- var1.requestFocus();
- return true;
- } else {
- return var1 instanceof JComponent && ((JComponent)var1).requestDefaultFocus();
- }
- }
-
- protected static void rotateInsets(Insets var0, Insets var1, int var2) {
- switch (var2) {
- case 1:
- default:
- var1.top = var0.top;
- var1.left = var0.left;
- var1.bottom = var0.bottom;
- var1.right = var0.right;
- break;
- case 2:
- var1.top = var0.right;
- var1.left = var0.top;
- var1.bottom = var0.left;
- var1.right = var0.bottom;
- break;
- case 3:
- var1.top = var0.bottom;
- var1.left = var0.right;
- var1.bottom = var0.top;
- var1.right = var0.left;
- break;
- case 4:
- var1.top = var0.left;
- var1.left = var0.bottom;
- var1.bottom = var0.right;
- var1.right = var0.top;
- }
-
- }
-
- protected void selectAdjacentRunTab(int var1, int var2, int var3) {
- if (this.runCount >= 2) {
- Rectangle var5 = this.rects[var2];
- int var4;
- switch (var1) {
- case 1:
- case 3:
- default:
- var4 = this.tabForCoordinate(this.tabPane, var5.x + var5.width / 2, var5.y + var5.height / 2 + var3);
- break;
- case 2:
- case 4:
- var4 = this.tabForCoordinate(this.tabPane, var5.x + var5.width / 2 + var3, var5.y + var5.height / 2);
- }
-
- if (var4 != -1) {
- while(!this.tabPane.isEnabledAt(var4) && var4 != var2) {
- var4 = this.getNextTabIndex(var4);
- }
-
- this.tabPane.setSelectedIndex(var4);
- }
-
- }
- }
-
- protected void selectNextTab(int var1) {
- int var2;
- for(var2 = this.getNextTabIndex(var1); var2 != var1 && !this.tabPane.isEnabledAt(var2); var2 = this.getNextTabIndex(var2)) {
- }
-
- this.tabPane.setSelectedIndex(var2);
- }
-
- protected void selectPreviousTab(int var1) {
- int var2;
- for(var2 = this.getPreviousTabIndex(var1); var2 != var1 && !this.tabPane.isEnabledAt(var2); var2 = this.getPreviousTabIndex(var2)) {
- }
-
- this.tabPane.setSelectedIndex(var2);
- }
-
- protected void setVisibleComponent(Component var1) {
- if (this.visibleComponent != var1) {
- if (this.visibleComponent != null) {
- this.visibleComponent.setVisible(false);
- }
-
- if (var1 != null) {
- var1.setVisible(true);
- }
-
- this.visibleComponent = var1;
- }
- }
-
- protected boolean shouldPadTabRun(int var1, int var2) {
- return this.runCount > 1;
- }
-
- protected boolean shouldRotateTabRuns(int var1) {
- return true;
- }
-
- public int tabForCoordinate(JTabbedPane var1, int var2, int var3) {
- int var4 = this.tabPane.getTabCount();
-
- for(int var5 = 0; var5 < var4; ++var5) {
- if (this.rects[var5].contains(var2, var3)) {
- return var5;
- }
- }
-
- return -1;
- }
-
- protected void uninstallDefaults() {
- this.highlight = null;
- this.lightHighlight = null;
- this.shadow = null;
- this.darkShadow = null;
- this.focus = null;
- this.tabInsets = null;
- this.selectedTabPadInsets = null;
- this.tabAreaInsets = null;
- this.contentBorderInsets = null;
- }
-
- protected void uninstallKeyboardActions() {
- this.tabPane.unregisterKeyboardAction(this.upKey);
- this.tabPane.unregisterKeyboardAction(this.downKey);
- this.tabPane.unregisterKeyboardAction(this.leftKey);
- this.tabPane.unregisterKeyboardAction(this.rightKey);
- this.tabPane.unregisterKeyboardAction(this.kpUpKey);
- this.tabPane.unregisterKeyboardAction(this.kpDownKey);
- this.tabPane.unregisterKeyboardAction(this.kpLeftKey);
- this.tabPane.unregisterKeyboardAction(this.kpRightKey);
- this.upKey = this.downKey = this.rightKey = this.leftKey = this.kpUpKey = this.kpDownKey = this.kpRightKey = this.kpLeftKey = null;
- this.tabPane.unregisterKeyboardAction(KeyStroke.getKeyStroke(34, 2));
- this.tabPane.unregisterKeyboardAction(KeyStroke.getKeyStroke(33, 2));
- this.tabPane.unregisterKeyboardAction(KeyStroke.getKeyStroke(40, 2));
- this.tabPane.unregisterKeyboardAction(KeyStroke.getKeyStroke(38, 2));
- this.tabPane.unregisterKeyboardAction(KeyStroke.getKeyStroke("control KP_DOWN"));
- this.tabPane.unregisterKeyboardAction(KeyStroke.getKeyStroke("control KP_UP"));
- }
-
- protected void uninstallListeners() {
- if (this.mouseListener != null) {
- this.tabPane.removeMouseListener(this.mouseListener);
- this.mouseListener = null;
- }
-
- if (this.focusListener != null) {
- this.tabPane.removeFocusListener(this.focusListener);
- this.focusListener = null;
- }
-
- if (this.containerListener != null) {
- this.tabPane.removeContainerListener(this.containerListener);
- this.containerListener = null;
- if (this.htmlViews != null) {
- this.htmlViews.removeAllElements();
- this.htmlViews = null;
- }
- }
-
- if (this.tabChangeListener != null) {
- this.tabPane.removeChangeListener(this.tabChangeListener);
- this.tabChangeListener = null;
- }
-
- if (this.propertyChangeListener != null) {
- this.tabPane.removePropertyChangeListener(this.propertyChangeListener);
- this.propertyChangeListener = null;
- }
-
- }
-
- public void uninstallUI(JComponent var1) {
- this.uninstallKeyboardActions();
- this.uninstallListeners();
- this.uninstallDefaults();
- ((Container)var1).setLayout((LayoutManager)null);
- this.tabPane = null;
- }
- }
-